package com.hub.utils;

import lombok.Getter;

/**
 *@author hub
 */
@Getter
public enum ApiCodeEnum {
    /**
     * 成功
     */
    SUCCESS(1,"成功"),
    /**
     * 失败
     */
    FAILED(0,"执行失败"),
    /**
     * 参数错误
     */
    PARAM_ERROR(100, "参数错误"),
    /**
     * 验证失败
     */
    AuthFail(150, "验证失败"),
    /**
     * 业务异常
     */
    BUSINESS_ERROR(400, "业务异常"),
    /**
     * 无权限
     */
    UNAUTHORIZED(401,"无权限"),
    /**
     * 权限不足
     */
    FORBIDDEN(403,"权限不足"),
    /**
     * 404 Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。
     */
    NOT_FOUND(404,"Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。"),
    /**
     * 405 对于请求所标识的资源，不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。
     */
    METHOD_NOT_ALLOWED(405,"对于请求所标识的资源，不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。"),
    /**
     * 415 Unsupported Media Type
     */
    UNSUPPORTED_MEDIA_TYPE(415, "不支持该媒体类型"),
    /**
     * 系统异常 500 服务器的内部错误
     */
    EXCEPTION(500, "服务器开小差，请稍后再试"),
    /**
     * 系统限流
     */
    TRAFFIC_LIMITING(429, "网络拥挤请稍后再试试"),
    /**
     * 服务调用异常
     */
    API_GATEWAY_ERROR(900, "网络繁忙，请稍后再试"),
    /**
     * rpc调用异常
     */
    RPC_ERROR(911, "网络调用异常");

    private int code;
    private String desc;

    ApiCodeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public static String getDesc(int index) {
        for (ApiCodeEnum c : ApiCodeEnum.values()) {
            if (c.getCode() == index) {
                return c.desc;
            }
        }
        return "未知编码";
    }
}
